<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/cookie.js"></script>
</head>

<body>
    <button class="set">创建</button>
    <button class="get">获取</button>
</body>
<script>
    // cookie的缺点:
    // 1. cookie不能跨网站
    // 2. cookie不能跨浏览器
    // 3. cookie可能被禁用 / 删除
    // 4. cookie的安全性较低
    // 5. cookie使用键值对形式存在的字符串 =>  键名/键值 只能是字符串类型,如果存储其他类型 => 会隐式转化为字符串

    //  问题: cookie中存储 数组/对象 等数据类型 => 隐式转化为字符串 => 结构就不清晰了?

    // 解决方法:
    // 存储时: 数组和对象存储到cookie之前 先转化为json字符串 => 再存储
    // 使用时: 先从cookie中取出对应的JSON字符串 再解析


    // 6. cookie存储中文, 有些浏览器(老版本)存储中文会乱码 => 解决
    // 解决方法:
    // 存储时: 先对中文进行编码操作  再存储
    // 使用时: 先取出cookie 再解码

    // encodeURI()           编码和特殊字符
    // encodeURIComponent()  编码和特殊字符(编码的特殊字符范围更广)

    // 解码
    // decodeURI()            
    // decodeURIComponent()  

    // 7. cookie存储数据量较少,不能超过4k  => 不能超过50条

    // 8. cookie会随着请求传递给服务器(后端)  => 优点:可以携带一定数据给服务器 缺点:携带数据会影响请求和响应的效率


    // var str = "今天天气不错!abcdefg123456789+-*/%?[]"

    // var enStr1 = encodeURI(str);
    // console.log(enStr1);
    // var enStr2 = encodeURIComponent(str);
    // console.log(enStr2);

    // var deStr1 = decodeURI(enStr1);
    // console.log(deStr1);

    // var deStr2 = decodeURIComponent(enStr2);
    // console.log(deStr2);

    var set = document.getElementsByClassName("set")[0];
    var get = document.getElementsByClassName("get")[0];

    set.onclick = function () {
        setCookie("user", "老王", 31 * 24 * 60 * 60);
    }


    get.onclick = function () {
        console.log(getCookie("user"));
        console.log(getCookie("userInfo"));
    }


</script>

</html>